ASP.Net অ্যাপ্লিকেশনে মডেল হল একটি ক্লাস যা ডাটাবেজ টেবিলের সাথে সম্পর্কিত ডেটা ধারণ করে। Entity Framework Core (EF Core) ব্যবহার করে আপনি মডেল তৈরি করতে পারেন এবং তা ডাটাবেজ টেবিলের সাথে ম্যাপ করতে পারেন। EF Core একটি ORM (Object Relational Mapping) ফ্রেমওয়ার্ক, যা আপনার C# মডেল ক্লাসগুলোকে ডাটাবেজ টেবিলের সাথে সংযুক্ত করে।
এই টিউটোরিয়ালে আমরা মডেল তৈরি, ডাটাবেজের সাথে ম্যাপিং এবং ডাটাবেজে CRUD (Create, Read, Update, Delete) অপারেশন কীভাবে করতে হয় তা আলোচনা করব।
প্রথমে, মডেল ক্লাস তৈরি করতে হয় যা ডাটাবেজ টেবিলের প্রতিনিধিত্ব করবে।
ধরা যাক, আমাদের একটি Product নামের মডেল ক্লাস তৈরি করতে হবে যা একটি প্রোডাক্টের নাম, দাম এবং স্টক কোয়ান্টিটি ধারণ করবে।
public class Product
{
public int Id { get; set; } // Primary Key
public string Name { get; set; } // Product Name
public decimal Price { get; set; } // Product Price
public int Stock { get; set; } // Product Stock Quantity
}
এখানে Product
ক্লাসটি একটি প্রোডাক্ট টেবিলের প্রতিনিধিত্ব করছে। Id
ফিল্ডটি ডাটাবেজের প্রাইমারি কি হিসেবে ব্যবহৃত হবে।
ডাটাবেজের সাথে যোগাযোগ করতে DbContext ক্লাস ব্যবহার করা হয়। এটি EF Core এর মূল অংশ, যা ডাটাবেজের সাথে CRUD অপারেশন পরিচালনা করে।
ApplicationDbContext
ক্লাসে ডাটাবেজের সাথে সংযোগ স্থাপন করা হয়।
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }
}
এখানে, DbSet<Product>
ফিল্ডটি Product
মডেল ক্লাসের টেবিলের প্রতিনিধিত্ব করছে। যখন EF Core কনফিগারেশন করা হয়, তখন এই DbSet টেবিলের রেকর্ডগুলোর সাথে CRUD অপারেশন পরিচালনা করবে।
ডাটাবেজ কনফিগার করার জন্য প্রথমে Connection String সেট করতে হবে এবং পরে ডাটাবেজ তৈরি করতে Migration কমান্ড ব্যবহার করা হবে।
appsettings.json
ফাইলে ডাটাবেজ কনফিগারেশন এবং সংযোগ সেট করুন।
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ProductDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
এখানে, DefaultConnection
এ localdb
ব্যবহার করা হয়েছে, তবে আপনি আপনার ডাটাবেজ সার্ভার এবং নাম পরিবর্তন করতে পারেন।
Startup.cs
ফাইলে DbContext
কনফিগার করুন যাতে ডাটাবেজের সাথে সংযোগ স্থাপন করা যায়।
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
এখানে, UseSqlServer
মেথডের মাধ্যমে SQL Server ডাটাবেজ ব্যবহার করা হচ্ছে।
এখন, Migration তৈরি করতে হবে যাতে আপনার মডেল ক্লাসকে ডাটাবেজের টেবিলের সাথে ম্যাপ করা যায়। টার্মিনাল বা প্যাকেজ ম্যানেজার কনসোল থেকে নিম্নলিখিত কমান্ড চালান:
dotnet ef migrations add InitialCreate
dotnet ef database update
এখানে, প্রথম কমান্ডটি ডাটাবেজের জন্য একটি মাইগ্রেশন তৈরি করবে এবং দ্বিতীয় কমান্ডটি ডাটাবেজে মাইগ্রেশন চালিয়ে টেবিল তৈরি করবে।
ডাটাবেজে নতুন রেকর্ড ইনসার্ট করতে Add
মেথড ব্যবহার করা হয়।
public class ProductController : Controller
{
private readonly ApplicationDbContext _context;
public ProductController(ApplicationDbContext context)
{
_context = context;
}
[HttpPost]
public IActionResult Create(Product product)
{
if (ModelState.IsValid)
{
_context.Add(product);
_context.SaveChanges(); // ডাটাবেজে সংরক্ষণ
return RedirectToAction(nameof(Index));
}
return View(product);
}
}
এখানে, _context.Add(product) ব্যবহার করে নতুন প্রোডাক্ট ডাটাবেজে ইনসার্ট করা হচ্ছে।
ডাটাবেজ থেকে ডেটা পড়তে Find
বা ToList
মেথড ব্যবহার করা হয়।
public IActionResult Index()
{
var products = _context.Products.ToList(); // সমস্ত প্রোডাক্ট নিয়ে আসা
return View(products);
}
এখানে _context.Products.ToList() ব্যবহার করে সমস্ত প্রোডাক্টগুলো ডাটাবেজ থেকে নিয়ে আসা হচ্ছে।
ডেটা আপডেট করতে Update মেথড ব্যবহার করা হয়।
[HttpPost]
public IActionResult Edit(int id, Product product)
{
if (id != product.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
_context.Update(product); // প্রোডাক্ট আপডেট করা
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
return View(product);
}
এখানে, _context.Update(product) ব্যবহার করে প্রোডাক্টের ডেটা আপডেট করা হচ্ছে।
ডেটা মুছে ফেলতে Remove মেথড ব্যবহার করা হয়।
public IActionResult Delete(int id)
{
var product = _context.Products.Find(id); // ডাটাবেজ থেকে প্রোডাক্ট খুঁজে বের করা
if (product == null)
{
return NotFound();
}
_context.Products.Remove(product); // প্রোডাক্ট মুছে ফেলা
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
এখানে, _context.Products.Remove(product) ব্যবহার করে প্রোডাক্ট মুছে ফেলা হচ্ছে।
ASP.Net MVC অ্যাপ্লিকেশনে Entity Framework Core ব্যবহার করে মডেল তৈরি করা এবং ডাটাবেজের সাথে ম্যাপিং করা খুবই সহজ। মডেল ক্লাসে ডেটা কনফিগারেশন এবং DbContext
এর মাধ্যমে CRUD অপারেশন করা যায়। EF Core এর Migration ফিচার ডাটাবেজ টেবিলগুলি তৈরি এবং আপডেট করতে সাহায্য করে।
Read more